--- a/lib/prefix.h
+++ b/lib/prefix.h
@@ -44,7 +44,7 @@
  */
 struct ethaddr {
     u_char octet[ETHER_ADDR_LEN];
-} __packed;
+} __attribute__((packed));
 
 
 /*
--- a/pimd/pim_version.h
+++ b/pimd/pim_version.h
@@ -25,6 +25,6 @@
 
 #define PIMD_VERSION_STR "0.166"
 
-const char * const PIMD_VERSION;
+extern const char * const PIMD_VERSION;
 
 #endif /* PIM_VERSION_H */
--- a/pimd/pimd.h
+++ b/pimd/pimd.h
@@ -68,39 +68,39 @@
 #define PIM_MASK_PIM_J_P             (1 << 12)
 #define PIM_MASK_STATIC              (1 << 13)
 
-const char *const PIM_ALL_SYSTEMS;
-const char *const PIM_ALL_ROUTERS;
-const char *const PIM_ALL_PIM_ROUTERS;
-const char *const PIM_ALL_IGMP_ROUTERS;
+extern const char *const PIM_ALL_SYSTEMS;
+extern const char *const PIM_ALL_ROUTERS;
+extern const char *const PIM_ALL_PIM_ROUTERS;
+extern const char *const PIM_ALL_IGMP_ROUTERS;
 
-struct thread_master     *master;
-uint32_t                  qpim_debugs;
-int                       qpim_mroute_socket_fd;
-int64_t                   qpim_mroute_socket_creation; /* timestamp of creation */
-struct thread            *qpim_mroute_socket_reader;
-int                       qpim_mroute_oif_highest_vif_index;
-struct list              *qpim_channel_oil_list; /* list of struct channel_oil */
-struct in_addr            qpim_all_pim_routers_addr;
-int                       qpim_t_periodic; /* Period between Join/Prune Messages */
-struct list              *qpim_upstream_list; /* list of struct pim_upstream */
-struct zclient           *qpim_zclient_update;
-struct zclient           *qpim_zclient_lookup;
-struct pim_assert_metric  qpim_infinite_assert_metric;
-long                      qpim_rpf_cache_refresh_delay_msec;
-struct thread            *qpim_rpf_cache_refresher;
-int64_t                   qpim_rpf_cache_refresh_requests;
-int64_t                   qpim_rpf_cache_refresh_events;
-int64_t                   qpim_rpf_cache_refresh_last;
-struct in_addr            qpim_inaddr_any;
-struct list              *qpim_ssmpingd_list; /* list of struct ssmpingd_sock */
-struct in_addr            qpim_ssmpingd_group_addr;
-int64_t                   qpim_scan_oil_events;
-int64_t                   qpim_scan_oil_last;
-int64_t                   qpim_mroute_add_events;
-int64_t                   qpim_mroute_add_last;
-int64_t                   qpim_mroute_del_events;
-int64_t                   qpim_mroute_del_last;
-struct list              *qpim_static_route_list; /* list of routes added statically */
+extern struct thread_master     *master;
+extern uint32_t                  qpim_debugs;
+extern int                       qpim_mroute_socket_fd;
+extern int64_t                   qpim_mroute_socket_creation; /* timestamp of creation */
+extern struct thread            *qpim_mroute_socket_reader;
+extern int                       qpim_mroute_oif_highest_vif_index;
+extern struct list              *qpim_channel_oil_list; /* list of struct channel_oil */
+static struct in_addr            qpim_all_pim_routers_addr;
+extern int                       qpim_t_periodic; /* Period between Join/Prune Messages */
+extern struct list              *qpim_upstream_list; /* list of struct pim_upstream */
+extern struct zclient           *qpim_zclient_update;
+extern struct zclient           *qpim_zclient_lookup;
+extern struct pim_assert_metric  qpim_infinite_assert_metric;
+extern long                      qpim_rpf_cache_refresh_delay_msec;
+extern struct thread            *qpim_rpf_cache_refresher;
+extern int64_t                   qpim_rpf_cache_refresh_requests;
+extern int64_t                   qpim_rpf_cache_refresh_events;
+extern int64_t                   qpim_rpf_cache_refresh_last;
+extern struct in_addr            qpim_inaddr_any;
+extern struct list              *qpim_ssmpingd_list; /* list of struct ssmpingd_sock */
+extern struct in_addr            qpim_ssmpingd_group_addr;
+extern int64_t                   qpim_scan_oil_events;
+extern int64_t                   qpim_scan_oil_last;
+extern int64_t                   qpim_mroute_add_events;
+extern int64_t                   qpim_mroute_add_last;
+extern int64_t                   qpim_mroute_del_events;
+extern int64_t                   qpim_mroute_del_last;
+extern struct list              *qpim_static_route_list; /* list of routes added statically */
 
 #define PIM_JP_HOLDTIME (qpim_t_periodic * 7 / 2)
 
